#include <napi.h>
#include <cuda_runtime_api.h>

Napi::Value CUDAFunction(const Napi::CallbackInfo& info) {
    Napi::Env env = info.Env();

    // 调用CUDA函数执行计算
    int result;
    cudaError_t cudaStatus = cudaDeviceSynchronize();
    if (cudaStatus != cudaSuccess) {
        Napi::TypeError::New(env, "CUDA function failed").ThrowAsJavaScriptException();
        return env.Null();
    } else {
        result = 42; // 假设计算结果为42
    }

    return Napi::Number::New(env, result);
}

Napi::Object Init(Napi::Env env, Napi::Object exports) {
    exports.Set(Napi::String::New(env, "CUDAFunction"), Napi::Function::New(env, CUDAFunction));
    return exports;
}
NODE_API_MODULE(cudaaddon, Init)
